package com.unisal.java;

import java.util.ArrayList;
import java.util.List;

public class WeatherData implements Sujeito {

	private List<Observador> observadores;
	private Double temperatura;
	private Double humidade;
	private Double pressao;

	public WeatherData() {
		observadores = new ArrayList<Observador>();
	}

	@Override
	public void registraObservador(Observador o) {
		observadores.add(o);
	}

	@Override
	public void removeObservador(Observador o) {
		Integer indice = observadores.indexOf(o);
		if (indice >= 0) {
			observadores.remove(indice);
		}
	}

	@Override
	public void notificaObservadores() {
		for (Integer indice = 0; indice < observadores.size(); indice++) {
			Observador observador = (Observador) observadores.get(indice);
			observador.update(temperatura, humidade, pressao);
		}

	}

	public void medicoeAtualizadas() {
		notificaObservadores();
	}

	public void setMedicoes(Double temperatura, Double humidade, Double pressao) {
		this.temperatura = temperatura;
		this.humidade = humidade;
		this.pressao = pressao;
		medicoeAtualizadas();

	}

}
